package 每日一题OJ;

import java.util.HashMap;
import java.util.Map;

/**
 * @author shy_black
 * @date 2019/4/24 20:13
 * @Description:
 *
 * 题目描述
 * 一个整型数组里除了两个数字之外，其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
 *
 * //num1,num2分别为长度为1的数组。传出参数
 * //将num1[0],num2[0]设置为返回结果
 */
public class 数组中只出现一次的数字 {
    public static void main(String[] args) {
        int[] array = new int[]{2,2,2,2,3,3,3,4,5};
        int[] num1 = new int[1];
        int[] num2 = new int[1];
        数组中只出现一次的数字(array,num1,num2);
    }
    public static void  数组中只出现一次的数字(int [] array,int num1[] , int num2[]) {

        Map<Integer,Integer> map = new HashMap<>();
        for(Integer a : array) {
            Integer count = map.get(a);
            if(null == count){
                map.put(a,1);
            }else {
                map.put(a,count+1);
            }
        }

        int[] num = new int[2];
        int i = 0;
        for(int a : array) {
            Integer count = map.get(a);
            if(count == 1)
                num[i++] = a;
        }
        num1[0] = num[0];
        num2[0] = num[1];
        System.out.println(num1[0]);
        System.out.println(num2[0]);
    }

}